package com.yaorange.jk.web.sysadmin;

import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ModelDriven;
import com.yaorange.jk.entity.Dept;
import com.yaorange.jk.service.DeptService;
import com.yaorange.jk.utils.Pagination;
import com.yaorange.jk.web.BaseAction;
import org.springframework.beans.factory.annotation.Autowired;

import java.util.List;

/**
 * @author coach tam
 * @date 2017/11/1
 */
public class DeptAction extends BaseAction implements ModelDriven<Dept> {

    /**
     * 因为模型驱动需要实现getModel，然后我们把这个对象传递给jsp 需要单独弄一个get方法。
     * 所以，我们把名字改成model，一个getModel 就搞定了。
     */
    private Dept model = new Dept();

    //分页对象
    private Pagination page = new Pagination();
    //部门列表
    private List<Dept> deptList;
    @Autowired
    private DeptService deptService;

    /**
     * 分页查询
     */
    public String list() {
        page = deptService.findPage(page.getPageNo(), page.getPageSize());
        page.setUrl("deptAction_list");
        push(page);
        return "list";
    }

    /**
     * 跳转添加页面
     */
    public String tocreate() {
        deptList = deptService.findAll();
        return "tocreate";
    }

    /**
     * 添加
     */
    public String insert() {
        deptService.save(model);
        return "rlist";
    }

    /**
     * 跳转更新页面
     * @return
     */
    public String toupdate() {
        //根据id查询部门老数据
        model = deptService.findById(model.getId());
        //查询所有的部门列表
        deptList = deptService.findAll();
        //移除本部门
        deptList.remove(model);
        return "toupdate";
    }

    /**
     *更新
     */
    public String update() {
        deptService.update(model);
        return "rlist";
    }

    /**
     * 批量删除
     */
    public String delete() {
        String[] ids = model.getId().split(", ");
        deptService.deleteByIds(ids);
        return "rlist";
    }


    public List<Dept> getDeptList() {
        return deptList;
    }

    public void setPage(Pagination page) {
        this.page = page;
    }

    @Override
    public Dept getModel() {
        return model;
    }
}
